package com.wn.common.provider

import android.content.Context
import com.alibaba.android.arouter.facade.annotation.Autowired
import com.alibaba.android.arouter.launcher.ARouter
import com.wn.common.constant.MAIN_SERVICE_HOME
import com.wn.common.service.IMainService

/**
 * @Author: wn
 * @Date: 2024/9/2 17:15
 * @Description: MainService提供类，对外提供相关能力
 * 任意模块就能通过 MainServiceProvider 提供的 -->MainService，使用对外暴露的能力
 */
object MainServiceProvider {
  /**
   * 实例处 定义 @Route(path = MAIN_SERVICE_HOME)
   * 此处通过 @Autowired(name = MAIN_SERVICE_HOME) 注入实例
   * object 内 通过 实例 --> 使用对外暴露的能力
   */
  @Autowired(name = MAIN_SERVICE_HOME)
  lateinit var mainService: IMainService

  init {
    ARouter.getInstance().inject(this)
  }

  /**
   * 跳转主页
   * @param context Context   --  当前 context
   * @param index Int         -- tab位置 默认第一页
   */
  fun toMain(context: Context, index: Int = 0) {
    mainService.toMain(context, index)
  }

  /**
   * 跳转文章详情页
   * @param context Context  --  当前 context
   * @param url String
   * @param title String
   */
  fun toArticleDetail(context: Context, url: String, title: String) {
    mainService.toArticleDetail(context, url, title)
  }

  /**
   * 跳转 体系 列表 详情页
   * @param context Context  --  当前 context
   * @param jsonData String  -- 体系列表数据
   */
  fun toSystemDetail(context: Context, jsonData: String) {
    mainService.toSystemDetail(context, jsonData)
  }
}